package org.example.backend.bean;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * 用户基础表
 *
 * @TableName user_base
 */
@TableName(value = "user_base")
@Data
@AllArgsConstructor
public class UserBase implements Serializable {

	/**
	 * 用户ID（雪花算法生成）
	 */
	@TableId
	private Long userId;
	/**
	 * 用户名
	 */

	@Size(max = 50, message = "编码长度不能超过50")
	@Length(max = 50, message = "编码长度不能超过50")
	private String username;
	/**
	 * 密码（bcrypt加密）
	 */

	@Size(max = 128, message = "编码长度不能超过128")
	@Length(max = 128, message = "编码长度不能超过128")
	private String password;
	/**
	 * 手机号
	 */
	@Size(max = 20, message = "编码长度不能超过20")
	@Length(max = 20, message = "编码长度不能超过20")
	private String mobile;
	/**
	 * 邮箱
	 */
	@Size(max = 100, message = "编码长度不能超过100")
	@Length(max = 100, message = "编码长度不能超过100")
	private String email;
	/**
	 * 状态：0-未验证，1-正常，2-封禁，3-注销
	 */

	private Integer status;
	/**
	 * 注册类型：1-手机，2-邮箱，3-微信，4-QQ，5-微博
	 */
	private Integer registerType;
	/**
	 * 注册时间
	 */
	private Date registerTime;
	/**
	 * 注册IP
	 */
	@Size(max = 50, message = "编码长度不能超过50")
	@Length(max = 50, message = "编码长度不能超过50")
	private String registerIp;
	/**
	 * 更新时间
	 */
	private Date updateTime;

//	登录类型：1-账号密码，2-app扫码，3-短信
	private Integer login_type;

	//	登录类型：0-用户 1-管理员
	private Integer user_type;
}
